The present disclosure relates to image processing techniques and tools for stitching together two dimensional images.
Image capture devices, such as cameras, can be used to capture an image of a section of some larger view, and such image capture devices can have a field of view that is less than desired. Thus, to generate an image of the larger view, multiple overlapping images of sections of the view can be taken, and the images can be stitched together to form a composite image, which may sometimes be referred to as a panoramic image. An image captured by a camera often distorts the sizes of objects depicted in the image so that distant objects appear smaller than closer objects. The size distortion, which is known as perspective distortion, depends on the camera position, the pointing angle of the camera, and so forth. Consequently, an object depicted in two different images might not have the same size in the two images, because of perspective distortion.
Different image stitching software tools are available, including commercial products and free software available over the Web. These image stitching software tools include tools that require user input to establish a reference image for a set of images, tools that automatically select a reference image based on a fixed ordering to the images (i.e., the first image in the set can be taken as the reference image), and tools that automatically select a reference frame, which is not locked to any specific image. Recently, automatic image stitching, i.e. image stitching with no user interaction, has become feasible and popular, thanks to advances in computer vision techniques. Given a set of images, there is software that can return a set of projective transformations that, when applied to the images, allows the images to be joined together in a composite image in a seamless, or nearly seamless manner.
A projective transformation is generally a nonlinear, two dimensional transformation that is conservative in terms of cross-ratios. A projective transformation can be represented with a 3×3 real non-singular matrix
  P  =            [                                                  p              11                                                          p              12                                                          p              13                                                                          p              21                                                          p              22                                                          p              23                                                                          p              31                                                          p              32                                                          p              33                                          ]        .  Given a point with coordinates x=[x1, x2], the transformed coordinates are given by
  y  =            [                        y          1                ,                  y          2                    ]        =          [                                    (                                                            p                  11                                ⁢                                  x                  1                                            +                                                p                  12                                ⁢                                  x                  2                                            +                              p                13                                      )                                (                                                            p                  31                                ⁢                                  x                  1                                            +                                                p                  32                                ⁢                                  x                  2                                            +                              p                33                                      )                          ,                              (                                                            p                  21                                ⁢                                  x                  1                                            +                                                p                  22                                ⁢                                  x                  2                                            +                              p                23                                      )                                (                                                            p                  31                                ⁢                                  x                  1                                            +                                                p                  32                                ⁢                                  x                  2                                            +                              p                33                                      )                              ]      The identity transformation can be represented with the 3×3 identity matrix
  P  =      [                            1                          0                          0                                      0                          1                          0                                      0                          0                          1                      ]  and is a special projective transformation that, when applied to an image, results in the same image.